package com.atguigu.gulimall.product.config;


import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
// 开启使用注解
@EnableTransactionManagement
@MapperScan("com.atguigu.gulimall.product.dao")
public class MyBatisConfig {

    /**
     * 配置分页插件
     * <p>
     * 该方法创建并配置了一个PaginationInterceptor实例这个插件用于支持分页查询
     * 设置溢出和限制属性以确保分页查询的效率和安全性
     *
     * @return PaginationInterceptor 配置好的分页插件实例
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        // 创建分页拦截器实例
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();

        // 设置分页溢出，允许使用超过总页数的页码
        paginationInterceptor.setOverflow(true);

        // 设置每页记录数的最大值，防止查询过多数据导致性能问题
        paginationInterceptor.setLimit(1000);

        // 返回配置好的分页拦截器实例
        return paginationInterceptor;
    }


}
